home *** CD-ROM | disk | FTP | other *** search
/ Super PC 34 / Super PC 34 (Shareware).iso / spc / SONIDO / AMUSIC11 / SOURCES / ASM / POLLING.ASM < prev    next >
Encoding:
Assembly Source File  |  1995-12-28  |  1.9 KB  |  119 lines

  1. ;Playdemo.asm
  2. ;(Plays a packed amd)
  3. ;
  4. ;How to use the player of Amusic (in polling mode!!!)
  5. ;6.12.1995 by Conqueror / ε£¥$$ì$
  6. ;
  7. ;Link this with amdobj.obj!!!
  8. ;
  9.  
  10. EXTRN _InitAdlib   : near
  11. EXTRN _AdlibPlayer : near
  12. EXTRN _StopAdlib   : near
  13.  
  14. EXTRN _AdlibState   : byte
  15.  
  16.  
  17. .model small
  18. .stack
  19. .386
  20. .data
  21.  
  22. FileName    db 14 dup(0)
  23. fhandle dw 0
  24.  
  25. WorkBuffer db 522h dup(?)
  26.  
  27.  
  28. ModBase    label byte
  29.     db 50000 dup(?)
  30.  
  31.  
  32.  
  33. ;####### CODE #########
  34.  
  35. .code
  36. maincode:
  37.     mov    ax,@data
  38.         mov    ds,ax
  39.  
  40.         mov    bx,82h
  41.         mov    di,offset FileName
  42. fnam_loop:
  43.     mov    cl,es:[bx]
  44.         cmp    cl,0Dh
  45.         jz    fnam_eos
  46.         cmp    cl,20h
  47.         jz    fnam_eos
  48.         or    cl,cl
  49.         jz    fnam_eos
  50.         mov    ds:[di],cl
  51.         inc    di
  52.         inc    bx
  53.         cmp    bx,82h+12
  54.         jb    fnam_loop
  55. fnam_eos:
  56.         mov    es,ax
  57.  
  58.  
  59. ;------ Load the mod
  60.  
  61.         mov    ax,3D00h
  62.         mov    dx,offset FileName
  63.         xor    cl,cl
  64.         int    21h
  65.         jc    LoadError
  66.         mov    [fhandle],ax
  67.  
  68.     mov    ah,3Fh
  69.         mov    bx,[fhandle]
  70.         mov    cx,50000
  71.         mov    dx,offset ModBase
  72.         int    21h
  73.  
  74.         mov    ah,3Eh
  75.         mov    bx,[fhandle]
  76.         int    21h
  77.  
  78.  
  79. ;------ Init the mod!!!
  80.         mov    si,offset ModBase
  81.         mov    di,offset WorkBuffer
  82.         mov    al,1        ;0=irq_mode  1=polling_mode
  83.     call    _InitAdlib
  84.  
  85.         cmp    cs:[_AdlibState],0
  86.         jz    LoadError        ;No adlib present!?
  87.  
  88. PlayLoop:            ;*** MAINLOOP *****
  89.  
  90.  
  91. ;------ Wait for retrace!!!
  92.         mov    dx,03DAh
  93. Wait1:    in    al,dx
  94.     and    al,8
  95.         jnz    short Wait1
  96. Wait2:    in    al,dx
  97.         and    al,8
  98.         jz    short Wait2
  99.  
  100.         mov    si,offset ModBase
  101.         mov    di,offset WorkBuffer
  102.         call    _AdlibPlayer
  103.  
  104.  
  105. ;------ check ESC key
  106.     in    al,60h
  107.     dec    al
  108.     jnz        short PlayLoop
  109.  
  110.  
  111. ;------ Fuck off!!!
  112.         call    _StopAdlib
  113.  
  114. LoadError:
  115.     mov    ah,04Ch        ;BYE
  116.     int    21h
  117.  
  118. end maincode
  119.